﻿/*+===================================================================
File:      BossTwoPartArm.h

Summary:   Định nghĩa lớp CBossTwoPartArm
===================================================================+*/

#ifndef _BOSSTWOPARTARM_H_
#define _BOSSTWOPARTARM_H_

#include "GameObject.h"
#include "Bill.h"
#include "Gun.h"

#define R 32.0f
#define MAX_VEC 300.0f

// Trạng thái của tay.
#define STATUS_START		0
#define STATUS_UP_DOWN		1
#define STATUS_ROTATE		2
#define STATUS_END_ROTATE	3
#define STATUS_WING			4
#define STATUS_FOLLOW		5	


/*C+==================================================================
Class:    CBossTwoPartArm

Summary:  Lớp CBossTwoPartArm miêu tả boss màn 2.
==================================================================-C*/
class CBossTwoPartArm : public CMoveableObject
{
protected:
	int m_nStatus;					// Trạng thái của arm.
	float m_fR;                     // Bán kính để tính vị trí.
	int m_nCount;                   
	bool m_checkCount;
	bool m_bVisible;
	float m_timeChange;
	float m_timeFire;
	CBill* m_bill;

	CGun* m_pGun;
public:

	CBossTwoPartArm* prevPartArm;  // Phần ở trước.
	CBossTwoPartArm* nextPartArm;  // Phần ở sau.

	float m_fAngle;                 // Góc hiện tại.

	float angleVec;               // Vận tốc quay.
	int direction;               // Hướng quay.

	CBossTwoPartArm(CBill* bill, D3DXVECTOR2 pos, int id, int typeId);
	~CBossTwoPartArm();

	void Update(float timeFrame);

	void UpdateCollision(vector<CGameObject*> vecGameObjs, float timeFrame);

	void Draw();

	bool Kill();

	void SetLife(int life);

	void SetVisible(bool visible);

	void ChangeStatus(int status);

	int GetId();

	void Fire();

	int GetStatus();

};

#endif